'''
python3.8 赋值表达式  ：=
'''

scores = [20,30,40]
# 普通 len计算2次
if len(scores)>2:
    print(f"成绩多余2门，一共是{len(scores)} 门") # f表示格式化字符串，加f后可以在字符串里面使用用花括号括起来的变量和表达式

# 新特性赋值表达式( :=  )
if (n:=len(scores)) >2: # 没有外括号 则 n 是True
    print(f"成绩多余2门，一共是{n} 门")

# students=[]
# while (name:=input("请输入学生名（quit退出）：")) != "quit":
#     students.append(name)
# print(students)

'''
python3.8 仅限位置形参fun(x=0,/)  变量参数后加个 / ，指定为限位   fun(x)可以，fun(x=n)不可以
'''
def myadd(x=0,/,y=0):
    return x+y

myadd(5,2)
myadd(5,y=2)
# myadd(x=5,y=2) # TypeError: myadd() got some positional-only arguments passed as keyword arguments: 'x'

'''
python3.8 简化的 f字符串打印调试 f"{name= }"  比3.6 变量后添加一个 = , name=tom 
'''
# 3.6版本开始后 f"{变量函数 :>1o}"  f可使{}里面的"字符串内使用变量或函数的值"，:>靠右边，10个字符宽度

name= 'Tom'
age = 18

print(f"{name:<10}  {age:<10}") # :<10 位置控制
print(f"{name=:<10}  {age=:<10}") # 变量名和值同时打印出来